#ifndef __INT_MT6816_H
#define __INT_MT6816_H

#include "stm32f10x.h"
#include "Com_Debug.h"
#include "Com_Delay.h"
#include "math.h"


void Int_MT6816_Init(void);

float Int_MT6816_GetCurrentDisplacement(void);

void Int_MT6816_UpdateDirection(void);

void GetDisplacementInfo(float *displacement, int32_t *full_revs, float *partial_rev, float calibration);

uint8_t Int_MT6816_GetDirectionByC(void);

void SetCurrentDisplacement(float displacement);

uint8_t Int_MT6816_GetStatus(void);

// 低功耗唤醒相关函数
void Int_MT6816_EnterStopMode(void);       // 进入STOP模式配置
void Int_MT6816_ExitStopMode(void);        // 退出STOP模式配置
uint8_t Int_MT6816_IsWakeupFromStop(void); // 检查是否从STOP模式唤醒
void Int_MT6816_ClearWakeupFlag(void);     // 清除唤醒标志

#endif
